/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author avbravo
 */
public class CierreAnualVigenciasExpiradasBeans {

    static int Anio;
    static private String Id;
    static String TipoId;
    static String IdRegimen;
    static String Activo;
    static double Morosidad;
    static String IdMunicipio;
    static String IdUsuario;
    static Date Fecha;
    Sesion sesion;
    static String Regimen;
    static java.sql.Date fechaInscripcion;
    static List<String> ListaId = new ArrayList<String>();
    static List<String> ListaTipoId = new ArrayList<String>();
    static List<String> ListaIdRegimen = new ArrayList<String>();
    static List<String> ListaMorosidad = new ArrayList<String>();
    static int NumeroRegistrosLista = -1;
    static List<String> ListaRegimen = new ArrayList<String>();
    static List<Double> ListaMorosidadActual = new ArrayList<Double>();
    static List<String> ListaNombre = new ArrayList<String>();
    static List<String> ListaIdCorregimiento = new ArrayList<String>();
    static List<String> ListaCorregimiento = new ArrayList<String>();
    static List<String> ListaTelefono = new ArrayList<String>();

    public static List<String> getListaCorregimiento() {
        return ListaCorregimiento;
    }

    public static void setListaCorregimiento(List<String> ListaCorregimiento) {
        CierreAnualVigenciasExpiradasBeans.ListaCorregimiento = ListaCorregimiento;
    }

    public static List<String> getListaIdCorregimiento() {
        return ListaIdCorregimiento;
    }

    public static void setListaIdCorregimiento(List<String> ListaIdCorregimiento) {
        CierreAnualVigenciasExpiradasBeans.ListaIdCorregimiento = ListaIdCorregimiento;
    }

    public static List<String> getListaTelefono() {
        return ListaTelefono;
    }

    public static void setListaTelefono(List<String> ListaTelefono) {
        CierreAnualVigenciasExpiradasBeans.ListaTelefono = ListaTelefono;
    }


    
    public static List<String> getListaNombre() {
        return ListaNombre;
    }

    public static void setListaNombre(List<String> ListaNombre) {
        CierreAnualVigenciasExpiradasBeans.ListaNombre = ListaNombre;
    }

    public static List<Double> getListaMorosidadActual() {
        return ListaMorosidadActual;
    }

    public static void setListaMorosidadActual(List<Double> ListaMorosidadActual) {
        CierreAnualVigenciasExpiradasBeans.ListaMorosidadActual = ListaMorosidadActual;
    }

    public static List<String> getListaRegimen() {
        return ListaRegimen;
    }

    public static void setListaRegimen(List<String> ListaRegimen) {
        CierreAnualVigenciasExpiradasBeans.ListaRegimen = ListaRegimen;
    }

    public static List<String> getListaId() {
        return ListaId;
    }

    public static void setListaId(List<String> ListaId) {
        CierreAnualVigenciasExpiradasBeans.ListaId = ListaId;
    }

    public static List<String> getListaIdRegimen() {
        return ListaIdRegimen;
    }

    public static void setListaIdRegimen(List<String> ListaIdRegimen) {
        CierreAnualVigenciasExpiradasBeans.ListaIdRegimen = ListaIdRegimen;
    }

    public static List<String> getListaMorosidad() {
        return ListaMorosidad;
    }

    public static void setListaMorosidad(List<String> ListaMorosidad) {
        CierreAnualVigenciasExpiradasBeans.ListaMorosidad = ListaMorosidad;
    }

    public static List<String> getListaTipoId() {
        return ListaTipoId;
    }

    public static void setListaTipoId(List<String> ListaTipoId) {
        CierreAnualVigenciasExpiradasBeans.ListaTipoId = ListaTipoId;
    }

    public static int getNumeroRegistrosLista() {
        return NumeroRegistrosLista;
    }

    public static void setNumeroRegistrosLista(int NumeroRegistrosLista) {
        CierreAnualVigenciasExpiradasBeans.NumeroRegistrosLista = NumeroRegistrosLista;
    }

    public static java.sql.Date getFechaInscripcion() {
        return fechaInscripcion;
    }

    public static void setFechaInscripcion(java.sql.Date fechaInscripcion) {
        CierreAnualVigenciasExpiradasBeans.fechaInscripcion = fechaInscripcion;
    }

    public CierreAnualVigenciasExpiradasBeans() {
        sesion = new Sesion();
    }

    public static String getRegimen() {
        return Regimen;
    }

    public static void setRegimen(String Regimen) {
        CierreAnualVigenciasExpiradasBeans.Regimen = Regimen;
    }

    public static String getActivo() {
        return Activo;
    }

    public static void setActivo(String Activo) {
        CierreAnualVigenciasExpiradasBeans.Activo = Activo;
    }

    public static int getAnio() {
        return Anio;
    }

    public static void setAnio(int Anio) {
        CierreAnualVigenciasExpiradasBeans.Anio = Anio;
    }

    public static Date getFecha() {
        return Fecha;
    }

    public static void setFecha(Date Fecha) {
        CierreAnualVigenciasExpiradasBeans.Fecha = Fecha;
    }

    public static String getId() {
        return Id;
    }

    public static void setId(String Id) {
        CierreAnualVigenciasExpiradasBeans.Id = Id;
    }

    public static String getIdMunicipio() {
        return IdMunicipio;
    }

    public static void setIdMunicipio(String IdMunicipio) {
        CierreAnualVigenciasExpiradasBeans.IdMunicipio = IdMunicipio;
    }

    public static String getIdRegimen() {
        return IdRegimen;
    }

    public static void setIdRegimen(String IdRegimen) {
        CierreAnualVigenciasExpiradasBeans.IdRegimen = IdRegimen;
    }

    public static String getIdUsuario() {
        return IdUsuario;
    }

    public static void setIdUsuario(String IdUsuario) {
        CierreAnualVigenciasExpiradasBeans.IdUsuario = IdUsuario;
    }

    public static double getMorosidad() {
        return Morosidad;
    }

    public static void setMorosidad(double Morosidad) {
        CierreAnualVigenciasExpiradasBeans.Morosidad = Morosidad;
    }

    public static String getTipoId() {
        return TipoId;
    }

    public static void setTipoId(String TipoId) {
        CierreAnualVigenciasExpiradasBeans.TipoId = TipoId;
    }

    /*
     * 
     * carga las listas de vigencias expiradas
     * 
     */
    public boolean AgregarCierreAnualVigenciasExpiradas() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "INSERT into cierreanualvigenciasexpiradas "
                    + "(anio,id,tipoid,idregimen,activo,"
                    + "morosidad,idmunicipio,"
                    + "idusuario,fecha) "
                    + "VALUES(?,?,?,?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setInt(1, getAnio());
            prest.setString(2, getId());
            prest.setString(3, getTipoId());
            prest.setString(4, getIdRegimen());
            prest.setString(5, getActivo()); //activo
            prest.setDouble(6, getMorosidad());
            prest.setString(7, sesion.getIdmunicipio());
            prest.setString(8, sesion.getUsername());
            java.util.Calendar ca = java.util.Calendar.getInstance();
            java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());
            prest.setDate(9, mydate);
            int count = prest.executeUpdate();

            sesion.con.close();
            //JOptionPane.showMessageDialog(null, "Cierre Mensual guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;

        } catch (Exception ex) {
            System.out.println("Error" + ex);
            JOptionPane.showMessageDialog(null, "AgregarCierreAnualVigenciasExpiradas()\nError " + ex.getMessage(), "AgregarCierre() Vigencia Expirada.  ", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean CargarVigenciasExpiradasTotal() {
        try {
            NumeroRegistrosLista = -1;

            ListaIdRegimen.removeAll(ListaIdRegimen);
            ListaId.removeAll(ListaId);
            ListaTipoId.removeAll(ListaTipoId);
            ListaMorosidad.removeAll(ListaMorosidad);

            String idMunicipio = sesion.getIdmunicipio();
            String sql = "select * from  cierreanualvigenciasexpiradas where idmunicipio= '" + idMunicipio + "' and anio ='" + this.Anio + "' and morosidad > 0";
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }

            PreparedStatement psquery = sesion.con.prepareStatement(sql);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            }
            NumeroRegistrosLista++;
            ListaIdRegimen.add(rs.getString("idregimen"));
            ListaMorosidad.add(rs.getString("morosidad"));
            ListaId.add(rs.getString("id"));
            ListaTipoId.add(rs.getString("tipoid"));

// Bucle para cada resultado en la consulta
            while (rs.next()) {
                ListaIdRegimen.add(rs.getString("idregimen"));
                ListaMorosidad.add(rs.getString("morosidad"));
                ListaId.add(rs.getString("id"));
                ListaTipoId.add(rs.getString("tipoid"));
                NumeroRegistrosLista++;

            }
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarVigenciasExpiradasTotal()\nError " + ex.getMessage(), "CargarVigenciasExpiradasTotal()", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }

    /*
     * 
     *Carga la informacion de la vigencia actual a las listas 
     * 
     */
    public boolean CargarListadoCierreAnualVigenciaActual(String sql) {
        try {
            NumeroRegistrosLista = -1;
            RemoverElementosLista();

            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
//                JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            ListaId.add(rs.getString("id"));
            ListaTipoId.add(rs.getString("tipoid"));
            ListaIdRegimen.add(rs.getString("idregimen"));
            ListaRegimen.add(rs.getString("regimen"));
            ListaMorosidadActual.add(rs.getDouble("morosidad"));


            NumeroRegistrosLista++;
            while (rs.next()) {
                ListaId.add(rs.getString("id"));
                ListaTipoId.add(rs.getString("tipoid"));
                ListaIdRegimen.add(rs.getString("idregimen"));
                ListaRegimen.add(rs.getString("regimen"));
                ListaMorosidadActual.add(rs.getDouble("morosidad"));

                NumeroRegistrosLista++;
            }
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarListadoCierreAnualVigenciaActual()\nError " + ex.getMessage(), "CargarListadoMorosidadMensual()", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }

    public void RemoverElementosLista() {
        ListaId.removeAll(ListaId);
        ListaTipoId.removeAll(ListaTipoId);
        ListaIdRegimen.removeAll(ListaIdRegimen);
        ListaRegimen.removeAll(ListaRegimen);
        ListaMorosidadActual.removeAll(ListaMorosidadActual);
        ListaNombre.removeAll(ListaNombre);
        ListaIdCorregimiento.removeAll(ListaIdCorregimiento);
        ListaCorregimiento.removeAll(ListaCorregimiento);
        ListaTelefono.removeAll(ListaTelefono);

    }

    public boolean CargarListadoCierre() {
        try {
            NumeroRegistrosLista = -1;
            RemoverElementosLista();
            CargarListadoCierreContribuyentes();
            CargarListadoCierreComercios();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarListadoCierre()\nError " + ex.getMessage(), "CargarListadoMorosidadMensual()", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }

    public boolean CargarListadoCierreContribuyentes() {
        try {


            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "select cierreanualvigenciasexpiradas.*, contribuyentes.contribuyente,  contribuyentes.telefono,regimen.regimen, corregimients.corregimiento, corregimients.idcorregimiento "
                    + " from cierreanualvigenciasexpiradas, contribuyentes, regimen , corregimients"
                    + " where cierreanualvigenciasexpiradas.idmunicipio = '" + sesion.getIdmunicipio() + "'"
                    + " and cierreanualvigenciasexpiradas.activo ='si' "
                    + " and cierreanualvigenciasexpiradas.anio='" + this.Anio + "'"
                    + " and contribuyentes.idmunicipio  = '" + sesion.getIdmunicipio() + "'"
                    + " and contribuyentes.activo ='si' "
                    + " and contribuyentes.cedula = cierreanualvigenciasexpiradas.id "
                    + " and cierreanualvigenciasexpiradas.tipoid='contribuyentes' "
                    + " and regimen.idmunicipio  = '" + sesion.getIdmunicipio() + "'"
                    + " and regimen.activo='si' "
                    + " and regimen.idregimen = cierreanualvigenciasexpiradas.idregimen"
                    + " and corregimients.idmunicipio   = '" + sesion.getIdmunicipio() + "'"
                    + " and corregimients.idcorregimiento = contribuyentes.idcorregimiento ";
            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
//                JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            ListaId.add(rs.getString("id"));
            ListaTipoId.add(rs.getString("tipoid"));
            ListaIdRegimen.add(rs.getString("idregimen"));
            ListaRegimen.add(rs.getString("regimen"));
            ListaMorosidadActual.add(rs.getDouble("morosidad"));
            ListaNombre.add(rs.getString("contribuyente"));
            ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
            ListaCorregimiento.add(rs.getString("corregimiento"));
            ListaTelefono.add(rs.getString("telefono"));


            NumeroRegistrosLista++;
            while (rs.next()) {
                ListaId.add(rs.getString("id"));
                ListaTipoId.add(rs.getString("tipoid"));
                ListaIdRegimen.add(rs.getString("idregimen"));
                ListaRegimen.add(rs.getString("regimen"));
                ListaMorosidadActual.add(rs.getDouble("morosidad"));
                ListaNombre.add(rs.getString("contribuyente"));
                ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
                ListaCorregimiento.add(rs.getString("corregimiento"));
                ListaTelefono.add(rs.getString("telefono"));
                NumeroRegistrosLista++;
            }
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarListadoCierreContribuyentes()\nError " + ex.getMessage(), "CargarListadoMorosidadMensual()", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }

    public boolean CargarListadoCierreComercios() {
        try {


            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "select cierreanualvigenciasexpiradas.*, comercios.comercio,comercios.telefono, regimen.regimen , corregimients.corregimiento, corregimients.idcorregimiento"
                    + " from cierreanualvigenciasexpiradas, comercios, regimen , corregimients"
                    + " where cierreanualvigenciasexpiradas.idmunicipio = '" + sesion.getIdmunicipio() + "'"
                    + " and cierreanualvigenciasexpiradas.activo ='si' "
                    + " and cierreanualvigenciasexpiradas.anio='" + this.Anio + "'"
                    + " and comercios.idmunicipio  = '" + sesion.getIdmunicipio() + "'"
                    + " and comercios.activo ='si' "
                    + " and comercios.idcomercio = cierreanualvigenciasexpiradas.id "
                    + " and cierreanualvigenciasexpiradas.tipoid='comercios' "
                    + " and regimen.idmunicipio  = '" + sesion.getIdmunicipio() + "'"
                    + " and regimen.activo='si' "
                    + " and regimen.idregimen = cierreanualvigenciasexpiradas.idregimen"
                    + " and corregimients.idmunicipio   = '" + sesion.getIdmunicipio() + "'"
                    + " and corregimients.idcorregimiento = comercios.idcorregimiento ";
                        String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
//                JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            ListaId.add(rs.getString("id"));
            ListaTipoId.add(rs.getString("tipoid"));
            ListaIdRegimen.add(rs.getString("idregimen"));
            ListaRegimen.add(rs.getString("regimen"));
            ListaMorosidadActual.add(rs.getDouble("morosidad"));
            ListaNombre.add(rs.getString("comercio"));
            ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
            ListaCorregimiento.add(rs.getString("corregimiento"));
            ListaTelefono.add(rs.getString("telefono"));

            NumeroRegistrosLista++;
            while (rs.next()) {
                ListaId.add(rs.getString("id"));
                ListaTipoId.add(rs.getString("tipoid"));
                ListaIdRegimen.add(rs.getString("idregimen"));
                ListaRegimen.add(rs.getString("regimen"));
                ListaMorosidadActual.add(rs.getDouble("morosidad"));
                ListaNombre.add(rs.getString("comercio"));
                ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
                ListaCorregimiento.add(rs.getString("corregimiento"));
                ListaTelefono.add(rs.getString("telefono"));
                NumeroRegistrosLista++;
            }
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarListadoCierreComercios()\nError " + ex.getMessage(), "CargarListadoMorosidadMensual()", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }
}
